iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
DevOps

從 AWS 轉生到 GCP 世界,還順便轉職成 DevOps 的 SRE系列 第 7

隨時掌握新技術省錢錢,從 VPC Access Connector 改成用 direct access

  • 分享至 

  • xImage
  •  

現在工作的公司算是台灣分部,一開始在跟總部的 SRE 討論技術的時候,有討論到目前 CloudRun SSR 的應用是有 CloudNAT + 外網。他們有建議我使用 Serverless VPC Access Connector ,但在 Console 上操作時,發現多了一個功能是 Direct VPC egress。之前在學 AWS 時有學到 AWS PrivateLink for S3,簡單描述就是你可以走內網跟 S3 溝通。所以依稀就覺得 Cloud 商一定都會陸續提供解決辦法。當下第六感就覺得這可能是更好的解法。稍微研究一下 Access Connector vs direct access,會發現因為 Access Connector 他背後是起了一台 VM 當作 proxy,這會造成成本增加,而且這台 VM 是管不到且看不到的!所以改採用 Direct VPC egress

比較參考:https://cloud.google.com/run/docs/configuring/connecting-vpc

由於我的目標是讓設定都 IaC 化,所以在 Terraform 上的設定也要相應調整,沒想到 GCP 官方的 Terraform Cloud Run 舊版 module 上還沒有提供 direct access 的設定,所以改成用 v2 版本

module "cloud_run_frontend" {
  source  = "GoogleCloudPlatform/cloud-run/google//modules/v2"c

v2 版本中,可以使用 vpc_access 來設定

  vpc_access = {
    network_interfaces = {
       network = "platform-staging"
       subnetwork = "platform-staging"
    }
    egress    = "ALL_TRAFFIC"
  }

關於 v2 版本,參考:https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#ingress

因為轉到 V2 版本包含 annotations 都要改掉,所以連帶設定都要做調整

# V1
service_annotations = {
  "run.googleapis.com/ingress" = "internal-and-cloud-load-balancing"
}


# V2
ingress = "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER"

上一篇
如果你想測試 Cloud Run 是否部署成功,你可以建立跳板機 使用 IAP 測試
下一篇
GCP ALB 整理
系列文
從 AWS 轉生到 GCP 世界,還順便轉職成 DevOps 的 SRE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言